package com.work.service.common;

import com.common.vo.CargoLocationDict;
import org.springblade.system.entity.DictBiz;
import org.springblade.system.user.entity.User;
import org.springblade.system.user.vo.UserVO;

import java.util.List;
import java.util.Map;

/**
 * 通用服务类
 *
 * @author ：dujianyu
 * @since ：Created in 2022/6/15 8:46
 */
public interface ICommonService {

    /**
     * 返回用户的名字
     *
     * @author dujianyu
     * @since 2022/6/15 8:47
     * @param ids 用户ids
     * @return String
     */
    String userName(String ids);

    /**
     * 货名Map
     *
     * @author dujianyu
     * @since 2022/6/15 8:57
     * @return Map<Long, String>
     */
    Map<Long, String> cargoMap();

    /**
     * 货名ID编号Map
     *
     * @author dujianyu
     * @since 2023/1/18 8:57
     * @return Map<String, Long>
     */
    Map<String, Long> cargoCodeIdMap();

    /**
     * 货场信息
     *
     * @author dujianyu
     * @since 2022/6/15 8:57
     * @return Map<Long, String>
     */
    Map<Long, String> positionMap();

    /**
     * 主货场
     *
     * @author dujianyu
     * @since 2022/6/15 8:57
     * @return Map<Long, Long>
     */
    Map<Long, Long> positionArea();

    /**
     * 主货场map
     *
     * @author dujianyu
     * @since 2022/8/31 16:07
     * @return Map<String, String>
     */
    Map<String, String> areaMap();

    /**
     * 所有理货用户
     *
     * @author dujianyu
     * @since 2022/6/15 8:57
     * @return List<UserVO>
     */
    List<UserVO> getUsers();

    /**
     * 泊位仓位名称
     *
     * @author dujianyu
     * @since 2022/10/10 10:33
     * @param holdOrBerth 泊位或仓位
     * @param dictBizList 泊位或仓位字典
     * @return String
     */
    String holdOrBerthNames(String holdOrBerth, List<DictBiz> dictBizList);

    /**判断是否超过多少小时 如：24
     *
     * @param tableTime 业务时间
     * @param hour 多少小时
     * @return boolean
     * @throws Exception
     */
    boolean judgmentDate(String tableTime, Integer hour) throws Exception;

}
